home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 53 / IOPROG_53.ISO / soft / c++ / xceedbkp.exe / Recovery Wizard / Sources / Browse.bas next >
Encoding:
BASIC Source File  |  1999-09-02  |  1.5 KB  |  50 lines

  1. Attribute VB_Name = "modBrowse"
  2. Option Explicit
  3.  
  4. Private Type BROWSEINFO
  5.     hwndOwner As Long
  6.     pidlRoot As Long
  7.     pszDisplayName As String
  8.     lpszTitle As String
  9.     ulFlags As Long
  10.     lpfn As Long
  11.     lParam As Long
  12.     iImage As Long
  13. End Type
  14.  
  15. Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  16.  
  17. Private Declare Function SHBrowseForFolder Lib "shell32" (ByRef pBrowseInfo As BROWSEINFO) As Long
  18. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidRes As Long, ByVal pszFolder As String) As Long
  19. Private Declare Sub CoTaskMemFree Lib "ole32" (ByVal pVoid As Long)
  20.  
  21. Public Function BrowseForFolder(sFolder As String, ByVal sTitle As String, hParent As Long) As Boolean
  22.     
  23.     Dim bRes As Boolean
  24.     bRes = False
  25.     
  26.     Dim bi As BROWSEINFO, pItemIDList As Long
  27.     
  28.     bi.hwndOwner = hParent
  29.     bi.pidlRoot = 0
  30.     bi.pszDisplayName = sFolder
  31.     bi.lpszTitle = sTitle
  32.     bi.ulFlags = 0
  33.     bi.lpfn = 0
  34.     bi.lParam = 0
  35.     bi.iImage = 0
  36.     
  37.     pItemIDList = SHBrowseForFolder(bi)
  38.     
  39.     If pItemIDList Then
  40.         sFolder = Space(261)
  41.         If SHGetPathFromIDList(pItemIDList, sFolder) Then
  42.             bRes = True
  43.         End If
  44.         
  45.         CoTaskMemFree (pItemIDList)
  46.     End If
  47.     
  48.     BrowseForFolder = bRes
  49. End Function
  50.